Performs a bit shifting operation, with rotation.
BitRotate ( value , shift [, size] )
Parameters
value | The number to be operate on. |
shift | Number of bits to rotate to the left (negative numbers shift right). If not given, the default is 1. |
size | [optional] A string that determines the rotation size, the default is (16 bits). See below. |
"B" | rotate bits within the low-order byte (8 bits). |
"W" | rotate bits within the low-order word (16 bits). |
"D" | rotate bits within the entire double-word (32 bits). |
Return Value
Returns the value rotated by the required number of bits.
Remarks
Remember hex notation can be used for numbers.
Related
BitShift, BitAND, BitNOT, BitOR, BitXOR, Hex
Example
$x = BitRotate(7, 2)
; x == 3 because 111b left-rotated twice is 1 1100b == 28
$y = BitRotate(14, -2)
; y == 32771 because 1110b right-rotated twice on 16 bits is 1000 0000 0000 0011b == 32771
$z = BitRotate(14, -2, "D")
; z == -2147483645 because 1110b right-rotated twice on 16 bits is 1000 0000 0000 0000 0000 0000 0000 0011b == 2147483645